from building import *
import rtconfig
import os

src = []
inc = []
cwd = GetCurrentDir()  # 根目录路径（如 src/ 所在目录）

src += Glob('*.c')
inc += [cwd]

# -------------------------- 原有代码：加载资源模块 --------------------------
# Add resources.
# Ensure directory is created before any builder is executed
# If the path is not present, it would not be added in "include path" and 'lang_pack.h' dependency would not work
Execute(Mkdir('resource/strings'))
src.extend(SConscript(os.path.join(cwd, 'resource/images/SConscript'), variant_dir="resource/images", duplicate=0))
src.extend(SConscript(os.path.join(cwd, 'resource/fonts/SConscript'), variant_dir="resource/fonts", duplicate=0))
src.extend(SConscript(os.path.join(cwd, 'resource/strings/SConscript'), variant_dir="resource/strings", duplicate=0))

# -------------------------- 原有代码：加载 GUI 模块 --------------------------
# Add GUI applications
app_objs = SConscript(os.path.join(cwd, 'gui_apps/SConscript'), variant_dir="gui_apps", duplicate=0)
src.extend(app_objs)

# -------------------------- 原有代码：加载 app_utils 模块 --------------------------
# #Add applications utils
src.extend(SConscript(os.path.join(cwd, 'app_utils/SConscript'), variant_dir="app_utils", duplicate=0))

# -------------------------- 新增代码：加载 sensor 模块（关键！） --------------------------
# 1. 检查 sensor 目录是否存在（避免路径错误）
sensor_dir = os.path.join(cwd, 'sensor')
if os.path.exists(sensor_dir) and os.path.isfile(os.path.join(sensor_dir, 'SConscript')):
    # 2. 调用 sensor 目录的 SConscript，获取其目标文件列表
    sensor_objs = SConscript(
        os.path.join(cwd, 'sensor/SConscript'),  # sensor 目录的 SConscript 路径
        variant_dir="sensor",  # 编译产物输出目录（与 gui_apps 同级，便于管理）
        duplicate=0
    )
    # 3. 将 sensor 目标文件加入全局 src 列表（参与最终链接）
    src.extend(sensor_objs)
    # 4. 将 sensor 目录添加到头文件搜索路径（确保其他模块能找到 sensor_manager.h）
    inc.append(sensor_dir)

# -------------------------- 原有代码：生成最终模块组 --------------------------
group = DefineGroup('app', src, depend=['PKG_USING_LITTLEVGL2RTT'], CPPPATH=inc)
Return('group')
